package Ġscience . num compass . con formance . compass . service Ċ Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . hl 7 . fhir . r 4 . model . Bundle Ċ import Ġorg . hl 7 . fhir . r 4 . model . Operation Outcome Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġscience . num compass . con formance . compass . engine . Comp ass Con formance Engine Ċ import Ġscience . num compass . con formance . compass . engine . is Successful Ċ import Ġscience . num compass . con formance . compass . report . Certificate Generator Ċ import Ġscience . num compass . con formance . compass . report . extract Certificate Data Ċ import Ġscience . num compass . con formance . fhir . service . Job Executor Ċ import Ġjava . util .* Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{ Ġ} Ċ Ċ @ Service Ċ class ĠG ec co Con formance Service ( ĊĠĠĠ Ġprivate Ġval Ġcomp ass Con formance Engine : ĠComp ass Con formance Engine , ĊĠĠĠ Ġprivate Ġval Ġcertificate Generator : ĠCertificate Generator , ĊĠĠĠ Ġprivate Ġval Ġjob Executor : ĠJob Executor Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġcheck Con formance ( bundle : ĠBundle ): ĠOperation Outcome Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcomp ass Con formance Engine . check Con formance ( bundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExec utes Ġthe Ġvalidation Ġin Ġa Ġbackground Ġjob Ġand Ġreturn Ġthe Ġjob ĠID ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġbundle Ġa ĠG EC CO Ġ[ Bundle ] ĊĠĠĠĠ Ġ* Ġ@ param Ġresource CacheKey Ġthe Ġkey Ġused Ġfor Ġthe Ġcache ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġjob ĠID ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcheck Con formance Async ( bundle : ĠBundle , Ġresource CacheKey : ĠString ) Ġ= Ġjob Executor . execute ( resource CacheKey ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Starting ĠG EC CO Ġcon formance Ġjob " Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoperation Outcome Ġ= Ġcheck Con formance ( bundle ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! operation Outcome . is Successful ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Outcome ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Pdf Response ( bundle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Result ( id : ĠUUID ): ĠAny ? Ġ= Ġjob Executor . getResult ( id ) ĊĊĠĠĠ Ġfun Ġgenerate Pdf Response ( bundle : ĠBundle ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcertificate Data Ġ= Ġextract Certificate Data ( bundle ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcertificate Generator . generate Certificate ( certificate Data ) ĊĠĠĠ Ġ} Ċ } Ċ