File tree Expand file tree Collapse file tree 4 files changed +28
-2
lines changed Expand file tree Collapse file tree 4 files changed +28
-2
lines changed Original file line number Diff line number Diff line change 190
190
(-rev-include [db resource-handle]
191
191
(let [search-param-registry (:search-param-registry node)
192
192
type (name (type/type resource-handle))
193
- reference (codec/v-hash ( rh/reference resource-handle) )]
193
+ reference (rh/tid-id resource-handle)]
194
194
(coll/eduction
195
195
(comp
196
196
(mapcat
203
203
(sr/list-by-target-type search-param-registry type))))
204
204
205
205
(-rev-include [db resource-handle source-type code]
206
- (rev-include db snapshot (codec/v-hash ( rh/reference resource-handle) )
206
+ (rev-include db snapshot (rh/tid-id resource-handle)
207
207
(codec/tid source-type) (codec/c-hash code)))
208
208
209
209
(-patient-everything [db patient-handle start end]
Original file line number Diff line number Diff line change 121
121
122
122
(defn local-ref-tuple [{type :fhir/type id :id }]
123
123
[(name type) id])
124
+
125
+ (defn tid-id [rh]
126
+ (codec/tid-id (tid rh) (codec/id-byte-string (id rh))))
Original file line number Diff line number Diff line change 521
521
:op := :delete
522
522
:num-changes := 2 )))))
523
523
524
+ (testing " referential integrity checks are not affected by hash collisions"
525
+ (with-system-data [{:blaze.db/keys [node]} config]
526
+ [[[:create
527
+ {:fhir/type :fhir/Encounter
528
+ :id " A597AEF8855D993D92B063CC69194E33A57F07760034D054150054BCDABFE332" }]
529
+ [:create
530
+ {:fhir/type :fhir/Encounter
531
+ :id " 1577C74A3D24F812C29FC372B5B0D9D325AA86A05A541598BF3734247EEAAE5C" }]
532
+ [:create
533
+ {:fhir/type :fhir/Observation :id " 0"
534
+ :encounter #fhir/Reference{:reference " Encounter/1577C74A3D24F812C29FC372B5B0D9D325AA86A05A541598BF3734247EEAAE5C" }}]]]
535
+
536
+ (testing " deleting the unreferenced encounter succeeds"
537
+ (let [db @(d/transact node [[:delete " Encounter" " A597AEF8855D993D92B063CC69194E33A57F07760034D054150054BCDABFE332" ]])]
538
+ (given (d/resource-handle db " Encounter" " A597AEF8855D993D92B063CC69194E33A57F07760034D054150054BCDABFE332" )
539
+ :op := :delete
540
+ :num-changes := 2 )))))
541
+
524
542
(testing " encounter with a condition referencing it"
525
543
(with-system-data [{:blaze.db/keys [node]} config]
526
544
[[[:create {:fhir/type :fhir/Encounter :id " 0" }]
Original file line number Diff line number Diff line change 2
2
(:require
3
3
[blaze.byte-buffer :refer [byte-buffer?]]
4
4
[blaze.byte-buffer-spec]
5
+ [blaze.byte-string :refer [byte-string?]]
5
6
[blaze.db.impl.codec-spec]
6
7
[blaze.db.impl.index.resource-handle :as rh]
7
8
[blaze.db.kv-spec]
54
55
(s/fdef rh/local-ref-tuple
55
56
:args (s/cat :rh rh/resource-handle?)
56
57
:ret :blaze.fhir/literal-ref-tuple )
58
+
59
+ (s/fdef rh/tid-id
60
+ :args (s/cat :rh rh/resource-handle?)
61
+ :ret byte-string?)
You can’t perform that action at this time.
0 commit comments