Volet Compte rendu d'examens de biologie
@Since DMP-3.0
La DevBox-Santé DMP prend également en charge la soumission de document structure comme le CR d’examens biologie.
Ce format de document est spécifié par l’ANS : https://esante.gouv.fr/volet-cr-bio-compte-rendu-dexamens-de-biologie-medicale
Un exemple de création de document conforme à la spécification est :
private void createCRBiologie(DMPCStructureSante structureSante) {
final String creationTime = "20111020194600";
final String startTime = "20140520174600";
final String stopTime = "20140520184600";
DMPCDocumentCRBiologie template = new DMPCDocumentCRBiologie();
template.setClassCode("10");
template.addConfidentiality("N");
template.setComments("Commentaire du document");
template.setFormat("urn:ihe:lab:xd-lab:2008"); // format obligatoire
template.setPracticeSetting("AMBULATOIRE");
template.setServiceStartTime(startTime);
template.setServiceStopTime(stopTime);
template.setTitle("Titre CRBiologie");
template.setType("11502-2");
template.setCreationTime(creationTime);
template.addEvent(new DMPCCode("16915-1", OIDs.LOINC.getRepresentation(), "Glucose post prandial [Masse/Volume] Sérum/Plasma ; Numérique"));
final Participation prescription = new Participation();
final DMPCPersonnelSante prescripteur = new DMPCPersonnelSante();
prescripteur.setAdeli("801234567897");
prescripteur.setNom("Gynecon");
prescripteur.setPrenom("Eve");
prescripteur.setStructureSante(structureSante);
prescripteur.setTelephone("0147150000");
prescription.setPersonnelSante(prescripteur);
prescription.setStopTime(startTime);
template.setPrescription(prescription);
final Participation prelevement = new Participation();
final DMPCPersonnelSante preleveur = new DMPCPersonnelSante();
preleveur.setAdeli("801234567897");
preleveur.setNom("Bleeder");
preleveur.setPrenom("Roberta");
preleveur.setStructureSante(structureSante);
prelevement.setPersonnelSante(preleveur);
prelevement.setStopTime(stopTime);
template.setPrelevement(prelevement);
template.setId("1234");
template.setVersionNumber(0);
final StructuredBody.ChapterSection chapterSection = new StructuredBody.ChapterSection();
chapterSection.setLoincCode(ChapterSectionLoincCode.BIOLOGIE.getCode());
template.getBody().getChapterSections().add(chapterSection);
final StructuredBody.Section section = new StructuredBody.Section();
chapterSection.getSections().add(section);
section.setAuthenticator(prescripteur);
section.setAuthenticatorInterpretation("Commentaire habituel");
final StructuredBody.Observation observation = new StructuredBody.Observation();
observation.setCode(new DMPCCode("16915-1", OIDs.LOINC.getRepresentation(), "Glucose post prandial [Masse/Volume] Sérum/Plasma ; Numérique"));
observation.setStatus("completed");
observation.setTime(stopTime);
final StructuredBody.Value value = new StructuredBody.Value();
value.setValue("1.5");
value.setUnit("g/L");
observation.setValue(value);
observation.setInterpretation(new DMPCCode("H", Hl7OIDs.OBSERVATION_INTERPRETATION.getRepresentation(), "Anormalement haut"));
final StructuredBody.RangeValue rangeValue = new StructuredBody.RangeValue();
rangeValue.setLow("0.8");
rangeValue.setHigh("1.26");
rangeValue.setUnit("g/L");
observation.setReferenceRange(rangeValue);
section.getObservations().add(observation);
}
La génération un peu longue certe permet de rajouter les sections et observations nécessaires pour générer le document CDA suivant :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance">
<realmCode code="FR"/>
<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/>
<templateId root="2.16.840.1.113883.2.8.2.1" assigningAuthorityName="HL7 France"/>
<templateId root="1.2.250.1.213.1.1.1.1" assigningAuthorityName="Cadre InteropASIP"/>
<templateId root="1.3.6.1.4.1.19376.1.2.20" assigningAuthorityName="Template identifier for an XDS-SD document"/>
<templateId root="1.3.6.1.4.1.19376.1.3.3" assigningAuthorityName="Laboratory Report Summary Specification"/>
<id root="1.2.250.1.287.1.123456.1400919121980.0"/>
<code code="11502-2" codeSystem="2.16.840.1.113883.6.1" displayName="CR d'examens biologiques"/>
<title>document titre</title>
<effectiveTime value="20140524101200+0200"/>
<confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25" displayName="Normal"/>
<languageCode code="fr-FR"/>
<versionNumber value="0"/>
<recordTarget>
<patientRole>
<id root="1.2.250.1.213.1.4.2" extension="1164485058822081751070"/>
<id root="1.2.250.1.287.1.123456" extension="1234"/>
<addr nullFlavor="NASK"/>
<telecom nullFlavor="NASK"/>
<patient>
<name>
<given>prenom</given>
<family qualifier="BR">nom</family>
<family qualifier="SP">nomEpouse</family>
</name>
<administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
<birthTime value="19730513"/>
</patient>
</patientRole>
</recordTarget>
<author>
<functionCode code="10" codeSystem="1.2.250.1.71.1.2.7" displayName="Médecin"/>
<time value="20140524101200+0200"/>
<assignedAuthor>
<id root="1.2.250.1.71.4.2.1" extension="500000000015644/123"/>
<code code="G15_10/SM30" codeSystem="1.2.250.1.213.1.1.4.5" displayName="Médecin - Néphrologie (SM)"/>
<addr nullFlavor="NASK"/>
<assignedPerson>
<name>
<given>auteurPrenom</given>
<family qualifier="BR">auteurNom</family>
</name>
</assignedPerson>
<representedOrganization>
<id root="1.2.250.1.71.4.2.2" extension="300000000015644"/>
<name>structureNom</name>
</representedOrganization>
</assignedAuthor>
</author>
<custodian>
<assignedCustodian>
<representedCustodianOrganization>
<id root="1.2.250.1.71.4.2.2" extension="300000000015644"/>
<name>structureNom</name>
<telecom nullFlavor="NASK"/>
<addr nullFlavor="NASK"/>
</representedCustodianOrganization>
</assignedCustodian>
</custodian>
<legalAuthenticator>
<time value="20140524101200+0200"/>
<signatureCode code="S"/>
<assignedEntity>
<id root="1.2.250.1.71.4.2.1" extension="500000000015644/123"/>
<addr nullFlavor="NASK"/>
<telecom nullFlavor="NASK"/>
<assignedPerson>
<name>
<given>auteurPrenom</given>
<family qualifier="BR">auteurNom</family>
</name>
</assignedPerson>
</assignedEntity>
</legalAuthenticator>
<participant typeCode="REF">
<functionCode code="TODO"/>
<time>
<high value="20091113"/>
</time>
<associatedEntity classCode="PROV">
<id root="1.2.250.1.71.4.2.1" extension="801234567897"/>
<code nullFlavor="NASK"/>
<addr nullFlavor="NASK"/>
<telecom use="EC" value="tel:0147150000"/>
<associatedPerson>
<name>
<given>Eve</given>
<family qualifier="BR">Gynecon</family>
</name>
</associatedPerson>
</associatedEntity>
</participant>
<participant typeCode="DIST">
<functionCode code="PRELV"/>
<time/>
<associatedEntity classCode="CAREGIVER">
<id root="1.2.250.1.71.4.2.1" extension="801234567897"/>
<code nullFlavor="NASK"/>
<addr nullFlavor="NASK"/>
<telecom nullFlavor="NASK"/>
<associatedPerson>
<name>
<given>Roberta</given>
<family qualifier="BR">Bleeder</family>
</name>
</associatedPerson>
</associatedEntity>
</participant>
<documentationOf>
<serviceEvent>
<code code="H33" codeSystem="2.16.840.1.113883.6.3" displayName="Décollement et déchirement de la rétine"/>
<effectiveTime>
<low value="20111025"/>
<high value="20111125"/>
</effectiveTime>
<performer typeCode="PRF">
<functionCode nullFlavor="UNK"/>
<assignedEntity>
<id root="1.2.250.1.71.4.2.1" extension="500000000015644/123"/>
<addr nullFlavor="NASK"/>
<telecom nullFlavor="NASK"/>
<assignedPerson>
<name>
<given>auteurPrenom</given>
<family qualifier="BR">auteurNom</family>
</name>
</assignedPerson>
<representedOrganization>
<id root="1.2.250.1.71.4.2.2" extension="300000000015644"/>
<name>structureNom</name>
<telecom nullFlavor="NASK"/>
<addr nullFlavor="NASK"/>
<standardIndustryClassCode code="AMBULATOIRE" codeSystem="1.2.250.1.213.1.1.4.9" displayName="Ambulatoire"/>
</representedOrganization>
</assignedEntity>
</performer>
</serviceEvent>
</documentationOf>
<componentOf>
<encompassingEncounter>
<effectiveTime nullFlavor="UNK"/>
<location>
<healthCareFacility>
<code code="SA41" codeSystem="1.2.250.1.71.4.2.4" displayName="Autre établissement du domaine social "/>
</healthCareFacility>
</location>
</encompassingEncounter>
</componentOf>
<component>
<structuredBody>
<component>
<section>
<templateId root="1.3.6.1.4.1.19376.1.3.3.2.1"/>
<code code="18719-5" codeSystem="2.16.840.1.113883.6.1" displayName="Biochimie"/>
<title>Biochimie</title>
<component>
<section>
<templateId root="1.3.6.1.4.1.19376.1.3.3.2.2"/>
<code nullFlavor="NASK"/>
<text>
<table>
<thead>
<tr>
<td>Unité</td>
<td>Date</td>
<td>Valeur</td>
<td>Valeur Référence</td>
<td>Interprétation</td>
</tr>
</thead>
<tbody>
<tr>
<td>g/L</td>
<td>24/05/2014</td>
<td>1.5</td>
<td>0.8 - 1.26</td>
<td>></td>
</tr>
</tbody>
</table>
<paragraph>Interprétation : Résultats Validés par : auteurNom auteurPrenom - null</paragraph>
</text>
<entry>
<observation classCode="OBS" moodCode="EVN">
<code xsi:type="CE" code="16915-1" codeSystem="2.16.840.1.113883.6.1" displayName="Glucose post prandial [Masse/Volume] Sérum/Plasma ; Numérique"/>
<statusCode code="completed"/>
<effectiveTime value="20140524101202+0200"/>
<value xsi:type="PQ" value="1.5" unit="g/L"/>
<interpretationCode code=">" codeSystem="2.16.840.1.113883.5.83" displayName="Au dessus, hors échelle de l'instrument de mesure"/>
<methodCode nullFlavor="NASK"/>
<referenceRange typeCode="REFV">
<observationRange>
<value xsi:type="IVL_PQ">
<low value="0.8" unit="g/L"/>
<high value="1.26" unit="g/L"/>
</value>
</observationRange>
</referenceRange>
</observation>
</entry>
</section>
</component>
</section>
</component>
</structuredBody>
</component>
</ClinicalDocument>