Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong Serialization of contained resources #276

Closed
hugosoares opened this issue Dec 30, 2015 · 9 comments
Closed

Wrong Serialization of contained resources #276

hugosoares opened this issue Dec 30, 2015 · 9 comments

Comments

@hugosoares
Copy link
Contributor

@hugosoares hugosoares commented Dec 30, 2015

Calling encodeResourceToString on a resource causes duplication of contained resources.
I know this sounds strange but se attached generated JSON.
The Resource object only contains a single Patient resource but the output json contains TWO DUPLICATE PATIENTS?!

MessageBundle.txt

@stefan-evinance
Copy link

@stefan-evinance stefan-evinance commented Nov 24, 2016

Problem is still present with latest HAPI-FHIR .

@jamesagnew
Copy link
Owner

@jamesagnew jamesagnew commented Nov 24, 2016

Hi Hugo, would you be able to provide a code sample showing how to generate these duplicates?

@hugosoares
Copy link
Contributor Author

@hugosoares hugosoares commented Nov 24, 2016

Hi James,
We have stopped using contained resources and started using DSTU2 Bundles with resource entries which is a better future proof way of dealing with this.
Anyway I have tried to reproduce the problem on the latest version and I it seems that it is not happening anymore,

Maybe Stefan can help can provide an example?

Let me take this opportunity to ask for an easier way of setting entries on a bundle. It should be as easy as bundle.addEntry().setResource() and the fullUrl would be automatically set by inspecting the base (hapi needs to know the base somehow ), reource type and id.

@stefan-evinance
Copy link

@stefan-evinance stefan-evinance commented Nov 24, 2016

IBaseResource resource = null;
try {
byte[] decoded = Base64.getDecoder().decode(base64blob.getBytes());
ByteArrayInputStream bis = new ByteArrayInputStream(decoded);
ObjectInputStream objectInputStream = new ObjectInputStream(bis);
resource = (IBaseResource) objectInputStream.readObject();
} catch (Exception e) {}
return FhirContext.forDstu3().newJsonParser().encodeResourceToString(resource);

rO0ABXNyAB5vcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuQ2xhaW3/////3P7OKwIAKUwACGFjY2lkZW50dAAyTG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9DbGFpbSRBY2NpZGVudENvbXBvbmVudDtMAA5iaWxsYWJsZVBlcmlvZHQAIUxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvUGVyaW9kO0wACGNvdmVyYWdldAAQTGphdmEvdXRpbC9MaXN0O0wAB2NyZWF0ZWR0ACdMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0RhdGVUaW1lVHlwZTtMAAlkaWFnbm9zaXNxAH4AA0wAEmVtcGxveW1lbnRJbXBhY3RlZHEAfgACTAAHZW50ZXJlcnQAJExvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvUmVmZXJlbmNlO0wADWVudGVyZXJUYXJnZXR0ACdMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL1ByYWN0aXRpb25lcjtMAAhmYWNpbGl0eXEAfgAFTAAOZmFjaWxpdHlUYXJnZXR0ACNMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0xvY2F0aW9uO0wADGZ1bmRzUmVzZXJ2ZXQAIUxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvQ29kaW5nO0wAD2hvc3BpdGFsaXphdGlvbnEAfgACTAAKaWRlbnRpZmllcnEAfgADTAALaW5mb3JtYXRpb25xAH4AA0wAB2luc3VyZXJxAH4ABUwADWluc3VyZXJUYXJnZXR0ACdMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL09yZ2FuaXphdGlvbjtMAARpdGVtcQB+AANMAAxtaXNzaW5nVGVldGhxAH4AA0wADG9yZ2FuaXphdGlvbnEAfgAFTAASb3JnYW5pemF0aW9uVGFyZ2V0cQB+AAlMABRvcmlnaW5hbFByZXNjcmlwdGlvbnEAfgAFTAAab3JpZ2luYWxQcmVzY3JpcHRpb25UYXJnZXR0ACxMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL01lZGljYXRpb25SZXF1ZXN0O0wAD29yaWdpbmFsUnVsZXNldHEAfgAITAAHcGF0aWVudHEAfgAFTAANcGF0aWVudFRhcmdldHQAIkxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvUGF0aWVudDtMAAVwYXllZXQAL0xvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvQ2xhaW0kUGF5ZWVDb21wb25lbnQ7TAAMcHJlc2NyaXB0aW9ucQB+AAVMABJwcmVzY3JpcHRpb25UYXJnZXR0ACNMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL1Jlc291cmNlO0wACHByaW9yaXR5cQB+AAhMAAlwcm9jZWR1cmVxAH4AA0wACHByb3ZpZGVycQB+AAVMAA5wcm92aWRlclRhcmdldHEAfgAGTAAIcmVmZXJyYWxxAH4ABUwADnJlZmVycmFsVGFyZ2V0dAAqTG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9SZWZlcnJhbFJlcXVlc3Q7TAAHcmVsYXRlZHEAfgADTAAHcnVsZXNldHEAfgAITAAGc3RhdHVzdAAmTG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9FbnVtZXJhdGlvbjtMAAdzdWJUeXBlcQB+AANMAAV0b3RhbHQAIExvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvTW9uZXk7TAAEdHlwZXEAfgAITAADdXNlcQB+AA94cgAnb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkRvbWFpblJlc291cmNl/////8YqngkCAARMAAljb250YWluZWRxAH4AA0wACWV4dGVuc2lvbnEAfgADTAARbW9kaWZpZXJFeHRlbnNpb25xAH4AA0wABHRleHR0ACRMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL05hcnJhdGl2ZTt4cgAhb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLlJlc291cmNl/////96nRpkCAARMAAJpZHQAIUxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvSWRUeXBlO0wADWltcGxpY2l0UnVsZXN0ACJMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL1VyaVR5cGU7TAAIbGFuZ3VhZ2V0ACNMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0NvZGVUeXBlO0wABG1ldGF0AB9Mb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL01ldGE7eHIAJW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5CYXNlUmVzb3VyY2UAAAAAAAAAAQIAAHhyAB1vcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuQmFzZYM3Nc2QCPU0AgADTAASZm9ybWF0Q29tbWVudHNQb3N0cQB+AANMABFmb3JtYXRDb21tZW50c1ByZXEAfgADTAAIdXNlckRhdGF0AA9MamF2YS91dGlsL01hcDt4cHBwcHNyAB9vcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuSWRUeXBlAAAAAAAAAAIMAAB4cgAgb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLlVyaVR5cGUAAAAAAAAAAwwAAHhyACZvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuUHJpbWl0aXZlVHlwZQAAAAAAAAADDAAAeHIAHW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5UeXBlQChWaf5BIIcCAAB4cgAgb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkVsZW1lbnT/////qWjbqAIAAkwACWV4dGVuc2lvbnEAfgADTAACaWR0ACVMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL1N0cmluZ1R5cGU7eHEAfgAZdAAMQ2xhaW0vMTAwMTUyeHBwc3IAHW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5NZXRhAAAAADOvbcMCAAVMAAtsYXN0VXBkYXRlZHQAJkxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvSW5zdGFudFR5cGU7TAAHcHJvZmlsZXEAfgADTAAIc2VjdXJpdHlxAH4AA0wAA3RhZ3EAfgADTAAJdmVyc2lvbklkcQB+ABR4cQB+AB9wcHBwcHBwcHBwc3IAE2phdmEudXRpbC5BcnJheUxpc3R4gdIdmcdhnQMAAUkABHNpemV4cAAAAAV3BAAAAAVzcgAlb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLk9yZ2FuaXphdGlvbgAAAABfzluLAgAMTAAGYWN0aXZldAAmTG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9Cb29sZWFuVHlwZTtMAAdhZGRyZXNzcQB+AANMAAVhbGlhc3EAfgADTAAHY29udGFjdHEAfgADTAAIZW5kcG9pbnRxAH4AA0wADmVuZHBvaW50VGFyZ2V0cQB+AANMAAppZGVudGlmaWVycQB+AANMAARuYW1lcQB+ACFMAAZwYXJ0T2ZxAH4ABUwADHBhcnRPZlRhcmdldHEAfgAJTAAHdGVsZWNvbXEAfgADTAAEdHlwZXQAKkxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvQ29kZWFibGVDb25jZXB0O3hxAH4AEXBwcHNxAH4AHHQADCNvcmctaW5zdXJlcnhwcHBwcHBwcHBwcHBwc3EAfgAnAAAAAXcEAAAAAXNyACNvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuSWRlbnRpZmllcv/////jdXdrAgAHTAAIYXNzaWduZXJxAH4ABUwADmFzc2lnbmVyVGFyZ2V0cQB+AAlMAAZwZXJpb2RxAH4AAkwABnN5c3RlbXEAfgAVTAAEdHlwZXEAfgArTAADdXNlcQB+AA9MAAV2YWx1ZXEAfgAheHEAfgAfcHBwcHBwcHBzcQB+AB10ABhodHRwOi8vd3d3LmJpbmRiLmNvbS9iaW54cHBzcgAjb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLlN0cmluZ1R5cGUAAAAAAAAAAwwAAHhxAH4AHnQABjEyMzQ1Nnh4cHBwcHBzcQB+AClwcHBzcQB+ABx0AAgjb3JnLW9yZ3hwcHBwcHBwcHBwcHBwc3EAfgAnAAAAAXcEAAAAAXNxAH4AMHBwcHBwcHBwc3EAfgAddAAtaHR0cDovL3d3dy5qdXJpc2RpY3Rpb24uY29tL29yYWxoZWFsdGhvZmZpY2VzeHBwc3EAfgA0dAAEMzQ1Nnh4cHBwcHBzcgAlb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLlByYWN0aXRpb25lcv/////FWfZGAgALTAAGYWN0aXZlcQB+ACpMAAdhZGRyZXNzcQB+AANMAAliaXJ0aERhdGV0ACNMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0RhdGVUeXBlO0wADWNvbW11bmljYXRpb25xAH4AA0wABmdlbmRlcnEAfgAPTAAKaWRlbnRpZmllcnEAfgADTAAEbmFtZXEAfgADTAAFcGhvdG9xAH4AA0wADXF1YWxpZmljYXRpb25xAH4AA0wABHJvbGVxAH4AA0wAB3RlbGVjb21xAH4AA3hxAH4AEXBwcHNxAH4AHHQACyNwcm92aWRlci0xeHBwcHBwcHBwcHBwcHNxAH4AJwAAAAF3BAAAAAFzcQB+ADBwcHBwcHBwcHNxAH4AHXQAL2h0dHA6Ly93d3cuanVyaXNkaWN0aW9uLmNvbS9vcmFsaGVhbHRocHJvdmlkZXJzeHBwc3EAfgA0dAAJMTIzNDU2Nzg5eHhwcHBwcHNyACBvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuUGF0aWVudP////+JrlzeAgATTAAGYWN0aXZlcQB+ACpMAAdhZGRyZXNzcQB+AANMAAZhbmltYWx0ADJMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL1BhdGllbnQkQW5pbWFsQ29tcG9uZW50O0wACWJpcnRoRGF0ZXEAfgBBTAANY29tbXVuaWNhdGlvbnEAfgADTAAHY29udGFjdHEAfgADTAAIZGVjZWFzZWR0AB9Mb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL1R5cGU7TAAGZ2VuZGVycQB+AA9MABNnZW5lcmFsUHJhY3RpdGlvbmVycQB+AANMABlnZW5lcmFsUHJhY3RpdGlvbmVyVGFyZ2V0cQB+AANMAAppZGVudGlmaWVycQB+AANMAARsaW5rcQB+AANMABRtYW5hZ2luZ09yZ2FuaXphdGlvbnEAfgAFTAAabWFuYWdpbmdPcmdhbml6YXRpb25UYXJnZXRxAH4ACUwADW1hcml0YWxTdGF0dXNxAH4AK0wADW11bHRpcGxlQmlydGhxAH4ATUwABG5hbWVxAH4AA0wABXBob3RvcQB+AANMAAd0ZWxlY29tcQB+AAN4cQB+ABFwcHBzcQB+ABx0AAojcGF0aWVudC0xeHBwcHBwcHBwc3EAfgAnAAAAAXcEAAAAAXNyACBvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuQWRkcmVzcwAAAAAhd6mOAgAKTAAEY2l0eXEAfgAhTAAHY291bnRyeXEAfgAhTAAIZGlzdHJpY3RxAH4AIUwABGxpbmVxAH4AA0wABnBlcmlvZHEAfgACTAAKcG9zdGFsQ29kZXEAfgAhTAAFc3RhdGVxAH4AIUwABHRleHRxAH4AIUwABHR5cGVxAH4AD0wAA3VzZXEAfgAPeHEAfgAfcHBwcHBzcQB+ADR0AAlWYW5jb3V2ZXJ4c3EAfgA0dAADQ0FEeHBzcQB+ACcAAAABdwQAAAABc3EAfgA0dAAQMTIzNCBNYWluIFN0cmVldHh4cHNxAH4ANHQABlYySDFZM3hwcHBzcgAkb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkVudW1lcmF0aW9uAAAAAAAAAAEMAAB4cQB+AB5zcgA2b3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkFkZHJlc3MkQWRkcmVzc1VzZUVudW1GYWN0b3J5yOAgMNqbSksCAAB4cHQABGhvbWV4eHBzcgAhb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkRhdGVUeXBlAAAAAAAAAAMMAAB4cgApb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkJhc2VEYXRlVGltZVR5cGUAAAAAAAAAAQwAAHhxAH4AHnQACjE5ODYtMDUtMTd4cHBwc3EAfgBdc3IARW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5FbnVtZXJhdGlvbnMkQWRtaW5pc3RyYXRpdmVHZW5kZXJFbnVtRmFjdG9yeZTKLkUbH4J2AgAAeHB0AARtYWxleHBwcHBwcHBwc3EAfgAnAAAAAXcEAAAAAXNyACJvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuSHVtYW5OYW1l//////N4/U4CAAdMAAZmYW1pbHlxAH4AA0wABWdpdmVucQB+AANMAAZwZXJpb2RxAH4AAkwABnByZWZpeHEAfgADTAAGc3VmZml4cQB+AANMAAR0ZXh0cQB+ACFMAAN1c2VxAH4AD3hxAH4AH3BwcHBwc3EAfgAnAAAAAXcEAAAAAXNxAH4ANHQABkRvbmFsZHh4c3EAfgAnAAAAAXcEAAAAAXNxAH4ANHQABER1Y2t4eHBwcHBzcQB+AF1zcgA1b3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkh1bWFuTmFtZSROYW1lVXNlRW51bUZhY3RvcnnqfEBfGvARLQIAAHhwdAAIb2ZmaWNpYWx4eHBwc3IAIW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5Db3ZlcmFnZf/////Hn4dXAgASTAALYmVuZWZpY2lhcnlxAH4ABUwAEWJlbmVmaWNpYXJ5VGFyZ2V0cQB+AAtMAAhjb250cmFjdHEAfgADTAAOY29udHJhY3RUYXJnZXRxAH4AA0wACWRlcGVuZGVudHQAKkxvcmcvaGw3L2ZoaXIvZHN0dTMvbW9kZWwvUG9zaXRpdmVJbnRUeXBlO0wACmlkZW50aWZpZXJxAH4AA0wAC2lzQWdyZWVtZW50cQB+ACpMAAZpc3N1ZXJxAH4ABUwADGlzc3VlclRhcmdldHEAfgANTAAFbGV2ZWxxAH4AA0wAB25ldHdvcmtxAH4AIUwABnBlcmlvZHEAfgACTAAKcGxhbmhvbGRlcnEAfgAFTAAQcGxhbmhvbGRlclRhcmdldHEAfgANTAAMcmVsYXRpb25zaGlwcQB+AAhMAAhzZXF1ZW5jZXEAfgB4TAAGc3RhdHVzcQB+AA9MAAR0eXBlcQB+AAh4cQB+ABFwcHBzcQB+ABx0AAsjY292ZXJhZ2UtMXhwcHBwcHBwc3IAIm9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5SZWZlcmVuY2X/////ycxevwIAA0wAB2Rpc3BsYXlxAH4AIUwACmlkZW50aWZpZXJ0ACVMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0lkZW50aWZpZXI7TAAJcmVmZXJlbmNlcQB+ACF4cgAmb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkJhc2VSZWZlcmVuY2UreNDsj/y52AIAAHhxAH4AH3BwcHBwcHBzcQB+ADR0AAojcGF0aWVudC0xeHBwcHNyAChvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuUG9zaXRpdmVJbnRUeXBlF2ek4+kiLD0MAAB4cgAkb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkludGVnZXJUeXBlAAAAAAAAAAMMAAB4cQB+AB50AAExeHNxAH4AJwAAAAF3BAAAAAFzcQB+ADBwcHBwcHBwcHNxAH4AHXQAImh0dHA6Ly9iZW5lZml0c2luYy5jb20vY2VydGlmaWNhdGV4cHBzcQB+ADR0AAUxMjM0NXh4cHNxAH4AfHBwcHBwcHNxAH4AMHBwcHBwcHBwc3EAfgAddAAYaHR0cDovL3d3dy5iaW5kYi5jb20vYmlueHBwc3EAfgA0dAAGMTIzNDU2eHBwcHBwcHBzcgAfb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkNvZGluZ/////+rgnOzAgAFTAAEY29kZXEAfgAWTAAHZGlzcGxheXEAfgAhTAAGc3lzdGVtcQB+ABVMAAx1c2VyU2VsZWN0ZWRxAH4AKkwAB3ZlcnNpb25xAH4AIXhxAH4AH3BwcHBwc3IAIW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5Db2RlVHlwZQAAAAAAAAADDAAAeHEAfgA0dAAEc2VsZnhwcHBwc3EAfgCCdAABMXhzcQB+AF1zcgA7b3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkNvdmVyYWdlJENvdmVyYWdlU3RhdHVzRW51bUZhY3RvcnnQ7Jj6Zu/ISwIAAHhwdAAGYWN0aXZleHNxAH4AknBwcHBwc3EAfgCUdAAGRUhDUE9MeHBzcQB+AB10AB5odHRwOi8vaGw3Lm9yZy9maGlyL3YzL0FjdENvZGV4cHB4cHBzcgAib3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLk5hcnJhdGl2ZQAAAABXQJ87AgACTAADZGl2dAAoTG9yZy9obDcvZmhpci91dGlsaXRpZXMveGh0bWwvWGh0bWxOb2RlO0wABnN0YXR1c3EAfgAPeHIAJm9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5CYXNlTmFycmF0aXZlnlVkmutMj1YCAAB4cQB+AB9wcHBwcHNyACZvcmcuaGw3LmZoaXIudXRpbGl0aWVzLnhodG1sLlhodG1sTm9kZcN1HnhuZPy0AgAGTAAKYXR0cmlidXRlc3EAfgAaTAAKY2hpbGROb2Rlc3EAfgADTAAHY29udGVudHQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACGxvY2F0aW9udAAxTG9yZy9obDcvZmhpci91dGlsaXRpZXMveGh0bWwvWGh0bWxOb2RlJExvY2F0aW9uO0wABG5hbWVxAH4Ap0wACG5vZGVUeXBldAAnTG9yZy9obDcvZmhpci91dGlsaXRpZXMveGh0bWwvTm9kZVR5cGU7eHBzcgARamF2YS51dGlsLkhhc2hNYXAFB9rBwxZg0QMAAkYACmxvYWRGYWN0b3JJAAl0aHJlc2hvbGR4cD9AAAAAAAAAdwgAAAAQAAAAAHhzcQB+ACcAAAABdwQAAAABc3EAfgCmc3EAfgCrP0AAAAAAAAB3CAAAABAAAAAAeHNxAH4AJwAAAAB3BAAAAAB4dAAzQSBodW1hbi1yZWFkYWJsZSByZW5kZXJpbmcgb2YgdGhlIE9yYWwgSGVhbHRoIENsYWltcHB+cgAlb3JnLmhsNy5maGlyLnV0aWxpdGllcy54aHRtbC5Ob2RlVHlwZQAAAAAAAAAAEgAAeHIADmphdmEubGFuZy5FbnVtAAAAAAAAAAASAAB4cHQABFRleHR4cHB0AANkaXZ+cQB+ALJ0AAdFbGVtZW50c3EAfgBdc3IAPW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5OYXJyYXRpdmUkTmFycmF0aXZlU3RhdHVzRW51bUZhY3Rvcnkt4/8MwoFFKwIAAHhwdAAJZ2VuZXJhdGVkeHBwc3EAfgAnAAAAAXcEAAAAAXNyADBvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuQ2xhaW0kQ292ZXJhZ2VDb21wb25lbnT/////xC7S6AIACUwAE2J1c2luZXNzQXJyYW5nZW1lbnRxAH4AIUwADWNsYWltUmVzcG9uc2VxAH4ABUwAE2NsYWltUmVzcG9uc2VUYXJnZXR0AChMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0NsYWltUmVzcG9uc2U7TAAIY292ZXJhZ2VxAH4ABUwADmNvdmVyYWdlVGFyZ2V0dAAjTG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9Db3ZlcmFnZTtMAAVmb2NhbHEAfgAqTAAPb3JpZ2luYWxSdWxlc2V0cQB+AAhMAApwcmVBdXRoUmVmcQB+AANMAAhzZXF1ZW5jZXEAfgB4eHIAKG9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5CYWNrYm9uZUVsZW1lbnT/////qqpmpQIAAUwAEW1vZGlmaWVyRXh0ZW5zaW9ucQB+AAN4cQB+ACBwcHBwcHBwcHBzcQB+AHxwcHBwcHBwc3EAfgA0dAALI2NvdmVyYWdlLTF4cHNyACRvcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuQm9vbGVhblR5cGUAAAAAAAAAAwwAAHhxAH4AHnQABHRydWV4cHBzcQB+AIJ0AAExeHhzcgAlb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkRhdGVUaW1lVHlwZQAAAAAAAAADDAAAeHEAfgBjdAAKMjAxNC0wOC0xNnhzcQB+ACcAAAABdwQAAAABc3IAMW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5DbGFpbSREaWFnbm9zaXNDb21wb25lbnQAAAAACBaDJwIABEwACWRpYWdub3Npc3EAfgAITAADZHJncQB+AAhMAAhzZXF1ZW5jZXEAfgB4TAAEdHlwZXEAfgADeHEAfgDBcHBwcHBwc3EAfgCScHBwcHBzcQB+AJR0AAYxMjM0NTZ4cHBwcHBzcQB+AIJ0AAExeHB4cHBwcHBwcHNxAH4AJwAAAAF3BAAAAAFzcQB+ADBwcHBwcHBwcHNxAH4AHXQAHGh0dHA6Ly9oYXBweXZhbGxleS5jb20vY2xhaW14cHBzcQB+ADR0AAUxMjM0N3h4cHNxAH4AfHBwcHBwcHBzcQB+ADR0AAwjb3JnLWluc3VyZXJ4cHNxAH4AJwAAAAF3BAAAAAFzcgAsb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkNsYWltJEl0ZW1Db21wb25lbnQAAAAALKoDwQIAFUwACGJvZHlTaXRlcQB+AAhMAAhjYXJlVGVhbXEAfgADTAAIY2F0ZWdvcnlxAH4ACEwABmRldGFpbHEAfgADTAAPZGlhZ25vc2lzTGlua0lkcQB+AANMAAZmYWN0b3J0ACZMb3JnL2hsNy9maGlyL2RzdHUzL21vZGVsL0RlY2ltYWxUeXBlO0wACGxvY2F0aW9ucQB+AE1MAAhtb2RpZmllcnEAfgADTAADbmV0cQB+ABBMAAZwb2ludHNxAH4A4UwAC3Byb2dyYW1Db2RlcQB+AANMAApwcm9zdGhlc2lzdAA0TG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9DbGFpbSRQcm9zdGhlc2lzQ29tcG9uZW50O0wACHF1YW50aXR5dAApTG9yZy9obDcvZmhpci9kc3R1My9tb2RlbC9TaW1wbGVRdWFudGl0eTtMAAdyZXZlbnVlcQB+AAhMAAhzZXF1ZW5jZXEAfgB4TAAHc2VydmljZXEAfgAITAAIc2VydmljZWRxAH4ATUwAB3N1YlNpdGVxAH4AA0wAA3VkaXEAfgADTAAJdWRpVGFyZ2V0cQB+AANMAAl1bml0UHJpY2VxAH4AEHhxAH4AwXBwcHBwcHBzcQB+ACcAAAABdwQAAAABc3IAMG9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5DbGFpbSRDYXJlVGVhbUNvbXBvbmVudAAAAAB4ii4HAgAFTAAIcHJvdmlkZXJxAH4ABUwADnByb3ZpZGVyVGFyZ2V0cQB+AA1MAA1xdWFsaWZpY2F0aW9ucQB+AAhMAAtyZXNwb25zaWJsZXEAfgAqTAAEcm9sZXEAfgAIeHEAfgDBcHBwcHBwc3EAfgB8cHBwcHBwcHNxAH4ANHQACyNwcm92aWRlci0xeHBwcHB4cHBwcHBwc3IAHm9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5Nb25leQAAAAAAAAAAAgAAeHIAIW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5RdWFudGl0eQAAAAA/wGemAgAFTAAEY29kZXEAfgAWTAAKY29tcGFyYXRvcnEAfgAPTAAGc3lzdGVtcQB+ABVMAAR1bml0cQB+ACFMAAV2YWx1ZXEAfgDheHEAfgAfcHBwcHBzcQB+AJR0AANVU0R4cHNxAH4AHXQAFHVybjppc286c3RkOmlzbzo0MjE3eHBzcgAkb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkRlY2ltYWxUeXBlAAAAAAAAAAMMAAB4cQB+AB50AAYxMzUuNTd4cHBwcHBzcQB+AIJ0AAExeHNxAH4AknBwcHBwc3EAfgCUdAAEMTIwMHhwcHBwc3EAfgBidAAKMjAxNC0wOC0xNnhwcHBzcQB+AOtwcHBwcHNxAH4AlHQAA1VTRHhwc3EAfgAddAAUdXJuOmlzbzpzdGQ6aXNvOjQyMTd4cHNxAH4A8nQABjEzNS41N3h4cHNxAH4AfHBwcHBwcHBzcQB+ADR0AAgjb3JnLW9yZ3hwcHBwc3EAfgB8cHBwcHBwcHNxAH4ANHQACiNwYXRpZW50LTF4cHNyAC1vcmcuaGw3LmZoaXIuZHN0dTMubW9kZWwuQ2xhaW0kUGF5ZWVDb21wb25lbnQAAAAACGFeQgIABEwABXBhcnR5cQB+AAVMAAtwYXJ0eVRhcmdldHEAfgANTAAMcmVzb3VyY2VUeXBlcQB+AAhMAAR0eXBlcQB+AAh4cQB+AMFwcHBwcHBwcHBzcQB+AJJwcHBwcHNxAH4AlHQACHByb3ZpZGVyeHBwcHBwcHNxAH4AknBwcHBwc3EAfgCUdAAGbm9ybWFseHBwcHBwcHBwcHBwc3EAfgBdc3IANW9yZy5obDcuZmhpci5kc3R1My5tb2RlbC5DbGFpbSRDbGFpbVN0YXR1c0VudW1GYWN0b3J58bMM0NIY8L8CAAB4cHQABmFjdGl2ZXhwcHNxAH4AknBwcHBwc3EAfgCUdAAEb3JhbHhwc3EAfgAddAAgaHR0cDovL2hsNy5vcmcvZmhpci9leC1jbGFpbXR5cGV4cHBzcQB+AF1zcgAtb3JnLmhsNy5maGlyLmRzdHUzLm1vZGVsLkNsYWltJFVzZUVudW1GYWN0b3J5oalAGvtRPC0CAAB4cHQACGNvbXBsZXRleA==

@jamesagnew
Copy link
Owner

@jamesagnew jamesagnew commented Nov 24, 2016

Is this the right example? I'm a bit confused, I don't see any contained resources in there..

@stefan-evinance
Copy link

@stefan-evinance stefan-evinance commented Nov 24, 2016

It is a Claim with 5 contained resources (Patient, 2x Organization, Coverage and Practitioner) but when it goes through the serializer we get JSON with 6 contained resources (2x Patient, 2x Organization, Coverage and Practitioner).

@jamesagnew
Copy link
Owner

@jamesagnew jamesagnew commented Nov 24, 2016

I just see a bunch of base 64 text... is the idea that the base 64 text needs to be fed into an objectinputstream? Is that a requirement in order to replicate this?

@stefan-evinance
Copy link

@stefan-evinance stefan-evinance commented Nov 24, 2016

Sorry, I wasn't clear. Instead of putting all the code needed to create a Claim resource I just serialized it and encoded as Base64. You can use the code above the Base64 blob to deserialize (assign the blob to String base64blob). This will give you a FHIR Claim resource with 5 contained resources. If you then pass it through the JSON serializer you will get 6 contained resources. The code to actually create the FHIR object was too complicated to put here.

@jamesagnew
Copy link
Owner

@jamesagnew jamesagnew commented Nov 25, 2016

Right, got it. I think I figured this out, checking in a fix shortly assuming the tests pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.