def getieuri(graph, subject, ds, ie): uidtag = None if ie == 'Study': uidtag = 0x0020000D elif ie == 'Series': uidtag = 0x0020000E elif ie == 'Frame of Reference': uidtag = 0x00200052 uri = None if uidtag: uid = getsinglevalue(ds, uidtag, 'UI') if uid is not None: uri = uritools.urifromuid(uid) label = str(uid) if not uri: uri, label = generateuri() graph.add((uri, RDF.type, uritools.getieclass(ie))) graph.add((uri, RDFS.label, rdflib.Literal(label))) graph.add((subject, DCTERMS.subject, uri)) return uri
def getieuri(graph,subject,ds,ie): uidtag=None if ie=='Study': uidtag=0x0020000D elif ie=='Series': uidtag=0x0020000E elif ie=='Frame of Reference': uidtag=0x00200052 uri=None if uidtag: uid=getsinglevalue(ds,uidtag,'UI') if uid is not None: uri=uritools.urifromuid(uid) label=str(uid) if not uri: uri,label=generateuri() graph.add((uri,RDF.type,uritools.getieclass(ie))) graph.add((uri,RDFS.label,rdflib.Literal(label))) graph.add((subject,DCTERMS.subject,uri)) return uri
range=XSD.dateTime else: assert False,vr graph.add((subject,RDF.type,cl)) if range is not None: graph.add((subject,RDFS.range,range)) if tag in iesbyattribute or tag in sequencesbyattribute: ies=iesbyattribute.get(tag,{}) ies=ies.get(None,[]) sqs=sequencesbyattribute.get(tag,[]) if len(ies+sqs)==1: for ie in ies: domain=uritools.getieclass(ie) for sq in sqs: domain=uritools.urifromtag(sq,isclass=True) graph.add((subject,RDFS.domain,domain)) else: colitems=[] for ie in ies: colitems.append(uritools.getieclass(ie)) for sq in sqs: colitems.append(uritools.urifromtag(sq,isclass=True)) colbnode=rdflib.BNode() col=rdflib.collection.Collection(graph,colbnode,colitems) union=rdflib.BNode() graph.add((subject,RDFS.domain,union)) graph.add((union,RDF.type,OWL.Class)) graph.add((union,OWL.unionOf,colbnode))