package Ġnet . nh sd . fhir . converter Ċ Ċ import Ġca . u hn . fhir . context . Fhir Version Enum Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġorg . hl 7 . fhir . instance . model . api . I Base Resource Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . xml . sax . Input Source Ċ import Ġjava . io . String Reader Ċ import Ġjavax . xml . parsers . Document BuilderFactory Ċ import Ġorg . hl 7 . fhir . dst u 3 . model . Med ication Request Ġas ĠR 3 Med ication Request Ċ import Ġorg . hl 7 . fhir . dst u 3 . model . Med ication Statement Ġas ĠR 3 Med ication Statement Ċ import Ġorg . hl 7 . fhir . dst u 3 . model . Bundle Ġas ĠR 3 Bundle Ċ import Ġorg . hl 7 . fhir . dst u 3 . model . All ergy Int olerance Ġas ĠR 3 All ergy Int olerance Ċ import Ġorg . hl 7 . fhir . r 4 . model . All ergy Int olerance Ġas ĠR 4 All ergy Int olerance Ċ import Ġorg . hl 7 . fhir . r 4 . model . Bundle Ġas ĠR 4 Bundle Ċ import Ġorg . hl 7 . fhir . r 4 . model . Med ication Request Ġas ĠR 4 Med ication Request Ċ import Ġorg . hl 7 . fhir . r 4 . model . Med ication Statement Ġas ĠR 4 Med ication Statement Ċ Ċ private Ġval Ġom : ĠObjectMapper Ġ= ĠObjectMapper () Ċ Ċ fun Ġget ResourceType ( ĊĠĠĠ Ġfhir Resource : ĠString , ĊĠĠĠ Ġmedia Type : ĠMediaType , ĊĠĠĠ Ġfhir Version : ĠF hir Version Enum Ċ ): ĠClass < out ĠI Base Resource > Ġ{ ĊĊĠĠĠ Ġval Ġis R 4 Ġ= ĠF hir Version Enum . R 4 Ġ== Ġfhir Version ĊĠĠĠ Ġval Ġresource Type Ġ= Ġget ResourceType ( fhir Resource , Ġmedia Type ) ĊĊĠĠĠ Ġif Ġ( is R 4 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( resourceType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Med ication Request " Ġ-> Ġreturn ĠR 4 Med ication Request :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Med ication Statement " Ġ-> Ġreturn ĠR 4 Med ication Statement :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bundle " Ġ-> Ġreturn ĠR 4 Bundle :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" All ergy Int olerance " Ġ-> Ġreturn ĠR 4 All ergy Int olerance :: class . java ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( resourceType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Med ication Request " Ġ-> Ġreturn ĠR 3 Med ication Request :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Med ication Statement " Ġ-> Ġreturn ĠR 3 Med ication Statement :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bundle " Ġ-> Ġreturn ĠR 3 Bundle :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" All ergy Int olerance " Ġ-> Ġreturn ĠR 3 All ergy Int olerance :: class . java ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthrow ĠIllegalStateException (" Resource : Ġ$ resourceType Ġis Ġinvalid Ġor Ġnot Ġsupported ") Ċ } Ċ Ċ private Ġfun Ġget ResourceType ( fhir Schema : ĠString , Ġmedia Type : ĠMediaType ): ĠString Ġ= ĊĠĠĠ Ġwhen Ġ( media Type . subtype ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" xml " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠDocument BuilderFactory . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġfactory . new Document Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= Ġbuilder . parse ( Input Source ( String Reader ( fhir Schema ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . firstChild . nodeName ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" json " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Node Ġ= Ġom . read Tree ( fhir Schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Node . get (" resourceType "). as Text () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Content - Type Ġnot Ġsupported ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ