         (index-concept context concept parsed-concept options)
         (log-ingest-to-index-time concept)))))
 
-(defn delete-concept
+(defmulti delete-concept
   "Delete the concept with the given id"
+  (fn [context concept-id revision-id options]
+    (cs/concept-id->type concept-id)))
+
+(defmethod delete-concept :default
   [context concept-id revision-id options]
   ;; Assuming ingest will pass enough info for deletion
   ;; We should avoid making calls to metadata db to get the necessary info if possible

            delete-time (get-in parsed-concept [:data-provider-timestamps :delete-time])]
        (when (or (nil? delete-time) (> (compare delete-time (tk/now)) 0))
          (let [tag-associations (mdb/get-tag-associations-for-collection context concept)
                elastic-version (es/get-elastic-version concept tag-associations)
                tag-associations (map cp/parse-concept (filter #(not (:deleted %)) tag-associations))
                concept-index (idx-set/get-concept-index-name context concept-id revision-id
                                                              all-revisions-index? concept)

            (let [batch (if (= :collection (cs/concept-id->type (:concept-id (first batch))))
                          ;; Get the tag associations as well.
                          (map (fn [concept]
                                 (let [tag-associations (mdb/get-tag-associations-for-collection concept)]
                                   (assoc concept :tag-associations tag-associations)))
                               batch)
                          ;; Just use the concepts as is.
                          batch)
