@@ -186,10 +186,20 @@ module Study =
186186 n.Add( assay)
187187 n
188188 let processes = study.GetProcesses()
189- let protocols = ProcessSequence.getProtocols processes
190- let factors = ProcessSequence.getFactors processes
191- let characteristics = ProcessSequence.getCharacteristics processes
192- let units = ProcessSequence.getUnits processes
189+ let encodedUnits =
190+ ProcessSequence.getUnits processes
191+ |> Encode.tryIncludeList " unitCategories" ( OntologyAnnotation.ISAJson.encoder idMap)
192+ let encodedFactors =
193+ ProcessSequence.getFactors processes
194+ |> Encode.tryIncludeList " factors" ( Factor.ISAJson.encoder idMap)
195+ let encodedCharacteristics =
196+ ProcessSequence.getCharacteristics processes
197+ |> Encode.tryIncludeList " characteristicCategories" ( MaterialAttribute.ISAJson.encoder idMap)
198+ let encodedMaterials =
199+ Encode.tryInclude " materials" ( StudyMaterials.ISAJson.encoder idMap) ( Option.fromValueWithDefault [] processes)
200+ let encodedProtocols =
201+ ProcessSequence.getProtocols processes
202+ |> Encode.tryIncludeList " protocols" ( Protocol.ISAJson.encoder ( Some s.Identifier) None None idMap)
193203 [
194204 " @id" , Encode.string ( study |> ROCrate.genID)
195205 " filename" , Encode.string fileName
@@ -201,13 +211,13 @@ module Study =
201211 Encode.tryIncludeSeq " publications" ( Publication.ISAJson.encoder idMap) study.Publications
202212 Encode.tryIncludeSeq " people" ( Person.ISAJson.encoder idMap) study.Contacts
203213 Encode.tryIncludeSeq " studyDesignDescriptors" ( OntologyAnnotation.ISAJson.encoder idMap) study.StudyDesignDescriptors
204- Encode.tryIncludeList " protocols" ( Protocol.ISAJson.encoder ( Some s.Identifier) None None idMap) protocols
205- Encode.tryInclude " materials" ( StudyMaterials.ISAJson.encoder idMap) ( Option.fromValueWithDefault [] processes)
206- Encode.tryIncludeList " factors" ( Factor.ISAJson.encoder idMap) factors
207- Encode.tryIncludeList " characteristicCategories" ( MaterialAttribute.ISAJson.encoder idMap) characteristics
208- Encode.tryIncludeList " unitCategories" ( OntologyAnnotation.ISAJson.encoder idMap) units
214+ encodedProtocols
215+ encodedMaterials
209216 Encode.tryIncludeList " processSequence" ( Process.ISAJson.encoder ( Some s.Identifier) None idMap) processes
210217 Encode.tryIncludeSeq " assays" ( Assay.ISAJson.encoder ( Some s.Identifier) idMap) assays
218+ encodedFactors
219+ encodedCharacteristics
220+ encodedUnits
211221 Encode.tryIncludeSeq " comments" ( Comment.ISAJson.encoder idMap) study.Comments
212222 ]
213223 |> Encode.choose
0 commit comments