Selaa lähdekoodia

funktion erstellt um ADT_A01 Nachrichten erstellen zu koennen - fehler liegt noch im MSH aufgrund der Zeichenkodierung von ^~\&

testBranch
taschi 10 vuotta sitten
vanhempi
commit
aee0297303
1 muutettua tiedostoa jossa 83 lisäystä ja 0 poistoa
  1. +83
    -0
      src/main/java/de/uniluebeck/mi/projmi6/HL7.java

+ 83
- 0
src/main/java/de/uniluebeck/mi/projmi6/HL7.java Näytä tiedosto

@@ -0,0 +1,83 @@
package de.uniluebeck.mi.projmi6;

import ca.uhn.hl7v2.model.v251.message.ADT_A01;
import ca.uhn.hl7v2.model.v251.segment.*;
import de.uniluebeck.mi.projmi6.model.Diagnose;
import de.uniluebeck.mi.projmi6.model.Fall;
import de.uniluebeck.mi.projmi6.model.Patient;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

/**
* Created by taschi on 15.11.15.
* enthaelt alle Klassen um eine Hl7 Nachricht zu erstellen bzw. zu Parsen.
*/
public class HL7 {

/**
* erstellt eine ADT_A0 nachricht, welche anschließend an die OPS Gruppe verschickt werden soll.
* TODO Mit OPS Gruppe absprechen, welche Informationen sie auf jeden Fall benötigen und Code entsprechend anpassen.
* @param fall nach dem Erstellen eines neuen Falls wird diese Methode aufgerufen um Hl7 Nachricht zu erzeugen
* @param diagnosen Liste aller Nebendiagnosen momentan noch als einzelne Liste uebereben. eventuell die Nebendiagnosen direkt im Fall speichern?
* @throws Exception
*/
public void createMessageADTA01( Fall fall, List<Diagnose> diagnosen) throws Exception{
Patient patient = fall.getPatient ();
ADT_A01 adt = new ADT_A01 ();

//default MSH Values (Sets Segments: 1,2,7,9
adt.initQuickstart ("ADT", "A01", "P");

//MSH Segment:
MSH mshSegment = adt.getMSH();
mshSegment.getMsh3_SendingApplication ().getNamespaceID ().setValue ( "KISGruppe6" );
mshSegment.getMsh5_ReceivingApplication ().getNamespaceID ().setValue("OPS Gruppe von Maurice und Torben");
mshSegment.getMsh12_VersionID ().getVersionID ().setValue ( "2.2" );
mshSegment.getMsh15_AcceptAcknowledgmentType ().setValue ( "AL" );
//Security?
//Message Control ID?
//Processing ID?
//Sequence Number ?
//Contituation Pointer ?
//Cointry Code
//Character Set
//Principal Language of Message

//EVN Segment:
EVN evnSegment = adt.getEVN ();
evnSegment.getEvn1_EventTypeCode ().setValue ("A01");
evnSegment.getEvn4_EventReasonCode ().setValue ( "01" );
//Operator ID
//Event occured

//PID
PID pidSegment = adt.getPID ();
pidSegment.getPid3_PatientIdentifierList (0).getIDNumber ().setValue ( Integer.toString(patient.getPatID ()) );
pidSegment.getPid5_PatientName (0).getFamilyName ().getSurname ().setValue ( patient.getNachname () );
pidSegment.getPid5_PatientName (0).getGivenName ().setValue ( patient.getVorname () );
pidSegment.getPid7_DateTimeOfBirth ().getTime ().setValue ( patient.getGeburtsdatum ().toString () );
pidSegment.getPid8_AdministrativeSex ().setValue ( patient.getGeschlecht ().toString () );
pidSegment.getPid11_PatientAddress (0).getStreetAddress ().getStreetName().setValue ( patient.getStrasse () );
pidSegment.getPid11_PatientAddress (0).getStreetAddress ().getDwellingNumber ( ).setValue ( patient.getHausnummer () );
pidSegment.getPid11_PatientAddress (0).getCity ().setValue (patient.getOrt () );
pidSegment.getPid13_PhoneNumberHome (0).getTelephoneNumber ().setValue ( patient.getTelefon () );
pidSegment.getPid16_MaritalStatus ().getAlternateIdentifier ().setValue ( patient.getFamilienstand ().toString());

//Dg1 (Diagnosen)
List<DG1> dg1List = new ArrayList<> ( );
diagnosen.add(fall.getHauptDiagnose ());
DG1 dg1Segment = adt.getDG1 ();

for (Diagnose aDiagnosen : diagnosen) {
dg1Segment = adt.getDG1 ();
dg1Segment.getDg12_DiagnosisCodingMethod ().setValue ( "ICD10" );
dg1Segment.getDg13_DiagnosisCodeDG1 ().getIdentifier ().setValue ( "CODE" );
dg1Segment.getDg14_DiagnosisDescription ().setValue ( aDiagnosen.getFreiText () );
dg1List.add ( dg1Segment );
}

}

}

Ladataan…
Peruuta
Tallenna