I'm just starting to use HAPI-FHIR and I was able to successfully parse a claim resource. However, when I try to parse a bundle, I get the following exception:
org.hl7.fhir.dstu3.model.Claim cannot be cast to ca.uhn.fhir.model.api.IResource
java.lang.ClassCastException: org.hl7.fhir.dstu3.model.Claim cannot be cast to ca.uhn.fhir.model.api.IResource
at ca.uhn.fhir.parser.ParserState$PreResourceStateHapi.populateTarget(ParserState.java:2240)
at ca.uhn.fhir.parser.ParserState$PreResourceState.postProcess(ParserState.java:2158)
at ca.uhn.fhir.parser.ParserState$PreResourceState.wereBack(ParserState.java:2080)
at ca.uhn.fhir.parser.ParserState$PreResourceStateHapi.wereBack(ParserState.java:2249)
at ca.uhn.fhir.parser.ParserState.pop(ParserState.java:161)
at ca.uhn.fhir.parser.ParserState.access$100(ParserState.java:96)
at ca.uhn.fhir.parser.ParserState$ElementCompositeState.endingElement(ParserState.java:1572)
at ca.uhn.fhir.parser.ParserState.endingElement(ParserState.java:133)
at ca.uhn.fhir.parser.JsonParser.parseChildren(JsonParser.java:1293)
at ca.uhn.fhir.parser.JsonParser.parseBundleChildren(JsonParser.java:1189)
at ca.uhn.fhir.parser.JsonParser.parseBundleChildren(JsonParser.java:1128)
at ca.uhn.fhir.parser.JsonParser.parseBundle(JsonParser.java:1110)
at ca.uhn.fhir.parser.BaseParser.parseBundle(BaseParser.java:585)
at ca.uhn.fhir.parser.BaseParser.parseBundle(BaseParser.java:591)
at com.verscend.fhir.FHIRParser.parse(FHIRParser.groovy:12)
at com.verscend.fhir.FHIRParserTest.Claim JSON Bundle Can Be Parsed Successfully(FHIRParserTest.groovy:15)
import ca.uhn.fhir.context.FhirContext
import org.hl7.fhir.dstu3.model.Bundle
class FHIRParser {
FhirContext context = FhirContext.forDstu3()
Bundle parse(String jsonPath) {
def parser = context.newJsonParser()
parser.parseBundle(new File(jsonPath).text)
}
}